import request from '@/utils/request'
import type { PageResponse } from '@/types'

export interface Subject {
  id: number
  name: string
  code: string
  description?: string
  status: 'ACTIVE' | 'INACTIVE'
  createdAt: string
  updatedAt: string
}

export interface SubjectQuery {
  page: number
  size: number
  name?: string
  code?: string
  status?: string
}

/**
 * 学科管理API接口
 */
export const subjectApi = {
  /**
   * 获取学科列表
   * @param params 查询参数
   */
  getSubjects: (params: SubjectQuery) =>
    request.get<PageResponse<Subject>>('/subjects', { params }),

  /**
   * 获取学科详情
   * @param id 学科ID
   */
  getSubject: (id: number) =>
    request.get<Subject>(`/subjects/${id}`),

  /**
   * 创建学科
   * @param data 学科数据
   */
  createSubject: (data: Omit<Subject, 'id' | 'createdAt' | 'updatedAt'>) =>
    request.post<Subject>('/subjects', data),

  /**
   * 更新学科
   * @param id 学科ID
   * @param data 学科数据
   */
  updateSubject: (id: number, data: Partial<Subject>) =>
    request.put<Subject>(`/subjects/${id}`, data),

  /**
   * 删除学科
   * @param id 学科ID
   */
  deleteSubject: (id: number) =>
    request.delete(`/subjects/${id}`),

  /**
   * 获取所有激活的学科（用于下拉选择）
   */
  getActiveSubjects: () =>
    request.get<Subject[]>('/subjects/active')
}